package cn.edu.scau.cmi.ema.dao;

import cn.edu.scau.cmi.ema.base.CmiPagination;
import cn.edu.scau.cmi.ema.domain.Site;
import org.springframework.dao.DataAccessException;

import java.util.Set;

public interface SiteDAO extends JpaDao<Site> {

	public Site findSiteById(Integer id) throws DataAccessException;

	public Site findSiteById(Integer id, int startResult, int maxRows) throws DataAccessException;

	public Set<Site> findSiteByName(String name) throws DataAccessException;

	public Set<Site> findSiteByName(String name, int startResult, int maxRows) throws DataAccessException;

	public Set<Site> findSiteByNameContaining(String name_1) throws DataAccessException;

	public Set<Site> findSiteByNameContaining(String name_1, int startResult, int maxRows) throws DataAccessException;

	public Set<Site> findSiteByDomain(String domain) throws DataAccessException;

	public Set<Site> findSiteByDomain(String domain, int startResult, int maxRows) throws DataAccessException;

	public Set<Site> findSiteByDomainContaining(String domain_1) throws DataAccessException;

	public Set<Site> findSiteByDomainContaining(String domain_1, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Site> findSiteByDescription(String description) throws DataAccessException;

	public Set<Site> findSiteByDescription(String description, int startResult, int maxRows) throws DataAccessException;

	public Set<Site> findSiteByDescriptionContaining(String description_1) throws DataAccessException;

	public Set<Site> findSiteByDescriptionContaining(String description_1, int startResult, int maxRows)
			throws DataAccessException;

	public Site findSiteByPrimaryKey(Integer id) throws DataAccessException;

	public Site findSiteByPrimaryKey(Integer id, int startResult, int maxRows) throws DataAccessException;

	public Set<Site> findSitesByIds(Set<Integer> ids) throws DataAccessException;

	public Set<Site> findAllSites() throws DataAccessException;

	public Set<Site> findAllSites(int startResult, int maxRows) throws DataAccessException;

	public Set<Site> findSiteByCompositeProperities(String sql, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Site> findSitesByDetachedCriteria(CmiPagination page) throws DataAccessException;

	public Site findSiteByPhysicalPrimaryKey(String name, String domain) throws DataAccessException;

	public Site findSiteByPhysicalPrimaryKey(String name, String domain, int startResult, int maxRows)
			throws DataAccessException;
}
